package com.ctg.behavior.common.userbehavior;

import java.util.ArrayList;
import java.util.List;

import com.ctg.behavior.common.CtgApplicationInfo;
import com.ctg.behavior.common.calc.CtCalcBody;
import com.ctg.behavior.common.calc.CtCalcFilter;
import com.ctg.behavior.common.calc.CtCalcMultiMeasure;
import com.ctg.behavior.common.consts.CtCalcConsts;

import lombok.Data;
import lombok.EqualsAndHashCode;

/*
 * 按事件总量统计接口、按事件分组统计接口的请求体定义类
 * 
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class CtUBCalcBody extends CtgApplicationInfo implements CtCalcBody {

	// 用户ID
	private String userId;
	// 设备ID
	private String deviceId;
	// 数据开始时间,格式：YYYY-MM-DD
	private String fromDate;
	// 数据开始时间,格式：YYYY-MM-DD
	private String toDate;
	// 详见UNIT定义
	private String unit = CtCalcConsts.UNIT_TYPE_DAY;
	// 分组字段
	private List<String> byFields = new ArrayList<String>();
	// 是否按时间累加数据
	private Boolean rollupDate = true;

	// 指定加载的属性: 用户与事件属件
	private CtCalcFilter filter = new CtCalcFilter();
	// 指定事件的计算规则
	private List<CtCalcMultiMeasure> measures = new ArrayList<>();

	// 按事件总量统计: CtCalcConsts.LOAD_TYPE_EVENT_TOTAL
	// 按事件分组统计: CtCalcConsts.LOAD_TYPE_EVENT_GROUPBY
	private String loadType;

}
